home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / log.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-05-29  |  7.4 KB  |  181 lines

  1. 1  CLOSE
  2. 5  ON ERROR GOTO 50000
  3. 10  DIM PIC(9000)
  4. 20  DIM FM$(500),BT$(500),T$(500),DT$(500),NM$(500),HR(500),MN(500)
  5. 30  KEY OFF:CLS:SCREEN 1:COLOR 2
  6. 40  LINE (15,10)-(15,105),3
  7. 50  LINE (30,10)-(30,90)
  8. 60  LINE (15,10)-(30,10)
  9. 70  LINE (30,90)-(65,90)
  10. 80  LINE (15,105)-(65,105):LINE -(65,90)
  11. 90  PAINT (16,104)
  12. 100  LINE (80,10)-(80,105)
  13. 110  LINE (95,20)-(95,90)
  14. 120  LINE (95,20)-(135,20)
  15. 130  LINE (80,10)-(150,10)
  16. 140  LINE (150,10)-(150,105)
  17. 150  LINE (135,20)-(135,90)
  18. 160  LINE (135,90)-(95,90)
  19. 170  LINE (150,105)-(80,105)
  20. 180  PAINT (149,104)
  21. 190  LINE (165,10)-(165,105)
  22. 200  LINE (180,20)-(180,90)
  23. 210  LINE (180,20)-(235,20)
  24. 220  LINE (165,10)-(235,10)
  25. 230  LINE -(235,20)
  26. 240  LINE (165,105)-(235,105)
  27. 250  LINE (180,90)-(220,90)
  28. 260  LINE (235,105)-(235,70)
  29. 270  LINE (220,90)-(220,80)
  30. 280  LINE -(200,80)
  31. 290  LINE (235,70)-(200,70)
  32. 300  LINE -(200,80)
  33. 310  PAINT (234,71)
  34. 320  GET(10,8)-(240,110),PIC
  35. 330  KEY(1) ON:ON KEY(1) GOSUB 3430
  36. 340  CLS:LOCATE 25,(40-26)/2:PRINT"PRESS F1 TO BEGIN PROGRAM";:FOR COL=0 TO 88 STEP 3:PUT(COL,10),PIC,PSET:FOR PAUSE=1 TO 400:NEXT:NEXT
  37. 350  FOR COL=88 TO 42 STEP -2:PUT (COL,10),PIC,PSET:FOR PAUSE=1 TO 500:NEXT:NEXT
  38. 360  B$=" by David Mitchell ":FOR COL=1 TO 22:LOCATE 16,COL:PRINT B$:NEXT:SOUND 500,1:SOUND 1000,1
  39. 370  FOR COL=22 TO 1 STEP -1:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 50:NEXT:NEXT:SOUND 500,1:SOUND 1000,1
  40. 380  FOR COL=1 TO 22:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 100:NEXT:NEXT:SOUND 500,1:SOUND 1000,1
  41. 390  FOR COL=22 TO 1 STEP -1:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 150:NEXT:NEXT:SOUND 500,1:SOUND 1000,1
  42. 400  FOR COL=1 TO 11:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 200:NEXT:NEXT
  43. 410  LOCATE 16,COL:PRINT"                   ":SOUND 150,1:FOR PS=1 TO 100:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 300:NEXT:LOCATE 16,COL:PRINT"                   ":SOUND 150,2:FOR PS=1 TO 500:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 700:NEXT
  44. 420  LOCATE 16,COL:PRINT"                   ":SOUND 150,3:FOR PS=1 TO 1000:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 1300:NEXT:LOCATE 16,COL:PRINT"                   ":SOUND 150,4:FOR PS=1 TO 1500:NEXT:LOCATE 16,COL:PRINT B$:FOR PS=1 TO 1700:NEXT
  45. 430  LOCATE 16,COL:PRINT"                   ":SOUND 150,5:FOR PS=1 TO 2000:NEXT:LOCATE 16,COL:PRINT B$
  46. 440  KEY (1) ON:ON KEY(1) GOSUB 0
  47. 450  LOCATE 25,1:PRINT SPACE$(39);:FOR G=1 TO 5000:NEXT
  48. 455  CLS:SCREEN 0:WIDTH 80:PRINT"Welcome to LOG.":PRINT"If you run this program before and after your work session, it will":PRINT"time your work session and save it in a file":PRINT"of total times for everything.":PRINT
  49. 456  PRINT"If you ever need to start over at any time, just press the F1 key":PRINT:PRINT"Also, if you have not let the opening screen run all the way through, without":PRINT"pressing F1, I suggest you do this once.":PRINT:PRINT:PRINT"Press any key to enter LOG!"
  50. 457  WHILE INKEY$="":WEND
  51. 460  KEY (1) ON:ON KEY(1) GOSUB 60000
  52. 470  CLOSE:CLS:SCREEN 0:WIDTH 80
  53. 480  PRINT"Main menu."
  54. 490  PRINT"Which would you like?"
  55. 500  PRINT" (1) Start a computer session"
  56. 510  PRINT" (2) End a computer session"
  57. 520  PRINT" (3) Print session statistics"
  58. 530  PRINT" (4) Exit to DOS"
  59. 540  LOCATE 2,23:PRINT" ":LOCATE 2,23:WER=1:GOSUB 2000
  60. 550  K=VAL(X$):IF K<1 OR K>4 OR K<>INT(K) THEN BEEP:GOTO 540
  61. 560  ON K GOSUB 2500,2700,3010,3400
  62. 570  END
  63. 2000  DEF SEG=0:POKE 1047,80:ERA$=CHR$(29)+" "+CHR$(29):CTRL.R$=CHR$(18):CTRL.X$=CHR$(24):ESC$=CHR$(27)
  64. 2010  X$="":PX$="":LOCATE ,,1
  65. 2020  W$=INPUT$(1)
  66. 2030  IF W$=CHR$(8) THEN IF X$="" THEN 2020 ELSE X$=LEFT$(X$,LEN(X$)-1):PRINT ERA$;:GOTO 2020
  67. 2040  IF W$=CTRL.X$ THEN IF X$="" THEN 2020 ELSE PX$=X$:FOR I=1 TO LEN(X$):PRINT ERA$;:NEXT:X$="":GOTO 2020
  68. 2050  IF W$=CTRL.R$ THEN IF PX$="" THEN 2020 ELSE FOR I=1 TO LEN(X$):PRINT ERA$;:NEXT:X$=PX$:PRINT X$;:GOTO 2020
  69. 2060  IF W$=ESC$ THEN FOR I=1 TO LEN(X$):PRINT ERA$;:NEXT:RUN
  70. 2070  IF W$=CHR$(13) THEN RETURN
  71. 2080  IF W$<" " OR W$>"~" THEN 2020
  72. 2090  PRINT W$;:X$=X$+W$:IF LEN(X$)=WER THEN RETURN ELSE GOTO 2020
  73. 2500  CLS:PRINT"Begin a computer session.":PRINT"Session name can from 1 to 8 characters but no spaces!"
  74. 2510  PRINT:PRINT"Session name?  ";:WER=15:GOSUB 2000
  75. 2520  IF LEN(X$)=0 THEN 2690
  76. 2530  FOR DAD=1 TO LEN(X$):IF MID$(X$,DAD,1)=CHR$(32) THEN 2690 ELSE NEXT
  77. 2540  NM$=X$
  78. 2550  COLOR 7:PRINT:PRINT"What is your name?":WER=15:PRINT"Use capital letters only!":GOSUB 2000:PRINT
  79. 2570  OPEN "O",#1,NM$+".JOB"
  80. 2580  T$=LEFT$(TIME$,LEN(TIME$)-3)
  81. 2590  PRINT #1,T$
  82. 2600  PRINT #1,DATE$
  83. 2610  PRINT #1,X$
  84. 2620  CLOSE
  85. 2630  PRINT:PRINT X$" is beginning computer session "NM$" at: "T$;:PRINT" on "DATE$
  86. 2640  PRINT"Is this correct? (Y/N)":WER=1:GOSUB 2000
  87. 2650  IF X$="Y" OR X$="y" THEN 2680
  88. 2660  IF X$<>"N" AND X$<>"n" THEN 2640
  89. 2670  KILL NM$+".job":PRINT:PRINT"Do you wish to try again?";:WER=1:GOSUB 2000:IF X$="N" OR X$="n" THEN 470  ELSE 2500
  90. 2680  LOCATE 25,1:PRINT"Press any key to continue";:WHILE INKEY$="":WEND:GOTO 470
  91. 2690  COLOR 22,0:PRINT:PRINT"INVALID FILE NAME!":BEEP:COLOR 7:GOTO 2510
  92. 2700  CLS:PRINT"End a session."
  93. 2710  PRINT"What is the session name?":WER=8:GOSUB 2000:FM$=X$
  94. 2711  IF X$="" THEN 470
  95. 2720  COLOR 7:PRINT:PRINT"What is your name?":WER=15:GOSUB 2000:PRINT
  96. 2740  PRNM$=X$
  97. 2750  T$=LEFT$(TIME$,LEN(TIME$)-3)
  98. 2760  OPEN "I",#1,FM$+".JOB"
  99. 2770  INPUT #1,BT$
  100. 2780  INPUT #1,DT$
  101. 2790  INPUT #1,NM$
  102. 2800  CLOSE:PRINT
  103. 2810  IF PRNM$<>NM$ THEN PRINT"I'm sorry but you're not the one who started the session":GOTO 2680
  104. 2820  KILL FM$+".JOB"
  105. 2830  IF FM$="GAMES" OR FM$="games" THEN FM$="PERSONAL USE":GOTO 2850
  106. 2840  PRINT:PRINT"What is the name that you want this to be under in the total file":PRINT"17 characters maximum!":PRINT"(<ENTER> if same)":WER=17:GOSUB 2000:IF X$<>"" THEN FM$=X$
  107. 2850  OPEN"A",#1,"TOTALTME"
  108. 2860  ET$=LEFT$(T$,2)+MID$(T$,4,2)
  109. 2870  ST$=LEFT$(BT$,2)+MID$(BT$,4,2)
  110. 2880  BT=VAL(ST$):ET=VAL(ET$)
  111. 2890  HR=VAL(LEFT$(ET$,2))-VAL(LEFT$(ST$,2)):PRINT
  112. 2900  MN=VAL(RIGHT$(ET$,2))-VAL(RIGHT$(ST$,2)):IF MN<0 THEN HR=HR-1:MN=MN+60
  113. 2905  PRINT:PRINT"Ending session at "LEFT$(ET$,2)":"RIGHT$(ET$,2)"."
  114. 2910  PRINT HR"HOURS AND"MN"MINUTES WERE SPENT ON ";:COLOR 14:PRINT FM$:COLOR 7
  115. 2920  PRINT #1,FM$:REM NAME OF SESSION
  116. 2930  PRINT #1,BT$:' BEGINNING TIME
  117. 2940  PRINT #1,T$:' ENDING TIME
  118. 2950  PRINT #1,DT$:' DATE OF USE
  119. 2960  PRINT #1,NM$:' PERSON USING IT
  120. 2970  PRINT #1,HR:' TOTAL NUMBER OF HOURS
  121. 2980  PRINT #1,MN:' TOTAL NUMBER OF MINUTES
  122. 2990  CLOSE
  123. 3000  GOTO 2680
  124. 3010  CLS:PRINT"Computer session statistics."
  125. 3020  PRINT:PRINT:COLOR 22:PRINT"READING SESSION STATISTICS":COLOR 7
  126. 3030  N=1
  127. 3040  OPEN "I",#1,"totaltme"
  128. 3050  INPUT #1,FM$(N)
  129. 3060  INPUT #1,BT$(N)
  130. 3070  INPUT #1,T$(N)
  131. 3080  INPUT #1,DT$(N)
  132. 3090  INPUT #1,NM$(N)
  133. 3100  INPUT #1,HR(N)
  134. 3110  INPUT #1,MN(N)
  135. 3120  IF EOF(1) THEN 3130 ELSE N=N+1:GOTO 3050
  136. 3130  CLOSE:PRINT:PRINT:PRINT"(S)creen or (P)rinter?":WER=1:GOSUB 2000
  137. 3140  IF X$<>"P" AND X$<>"p" THEN OPEN "O",#1,"SCRN:":CLS:PRINT"Press ^NumLock to pause" ELSE OPEN "O",#1,"lpt1:"
  138. 3141  IF X$="p" OR X$="P" THEN N=N+1:PRINT:PRINT"What heading should be used at the top of the printout? (Up to 30 characters)":WER=30:GOSUB 2000:PRINT:PRINT"Printing to printer":ZZ$=X$ ELSE ZZ$="COMPUTER USE"
  139. 3150  H=LEN(ZZ$):H=80-H:H=H/2:PRINT #1,TAB(H);ZZ$
  140. 3155  PRINT #1,TAB(H);
  141. 3160  FOR HJK=1 TO LEN(ZZ$):PRINT #1,"=";:NEXT
  142. 3170  PRINT #1,
  143. 3180  PRINT #1,"ACTIVITY          DATE       END TIME    START TIME    HOURS    MINS   NAME"
  144. 3190  PRINT #1,"--------          ----       --------    ----------    -----    ----   ----"
  145. 3200  FOR P=1 TO N
  146. 3210  HR$(P)=STR$(HR(P))
  147. 3220  MN$(P)=STR$(MN(P))
  148. 3230  IF LEN(FM$(P))<>19 THEN FM$(P)=FM$(P)+SPACE$(18-LEN(FM$(P)))
  149. 3240  IF LEN(HR$(P))<>9 THEN HR$(P)=HR$(P)+SPACE$(9-LEN(HR$(P)))
  150. 3250  IF LEN(MN$(P))<>8 THEN MN$(P)=MN$(P)+SPACE$(8-LEN(MN$(P)))
  151. 3260  PRINT #1,FM$(P);DT$(P);" ";T$(P);"       ";BT$(P);SPACE$(8);HR$(P);MN$(P);NM$(P);
  152. 3270  NEXT P
  153. 3280  LOCATE 25,1:PRINT"Press any key to continue";:WHILE INKEY$="":WEND
  154. 3290  CLS:PRINT"Would you like the total hours of a computer session?":WER=1:GOSUB 2000:IF X$="Y" OR X$="y" THEN 3310
  155. 3300  LOCATE 25,1:PRINT"Press any key to continue";:WHILE INKEY$="":WEND:GOTO 470
  156. 3310  PRINT:PRINT"What is the name of the session?":WER=17:GOSUB 2000:CD$=X$
  157. 3320  DD$=CD$:IF LEN(CD$)<>19 THEN CD$=CD$+SPACE$(18-LEN(CD$))
  158. 3330  TH=0:TM=0:THOURS=0:TMINUTES=0
  159. 3340  FOR P=1 TO N
  160. 3350  IF FM$(P)=CD$ THEN THOURS=THOURS+HR(P):TMINUTES=TMINUTES+MN(P)
  161. 3360  IF TMINUTES>60 THEN THOURS=THOURS+INT(TMINUTES/60):T=INT(TMINUTES/60):TMINUTES=TMINUTES-(60*T)
  162. 3370  NEXT
  163. 3380  PRINT:PRINT "The total time for "DD$" is"THOURS" hours and"TMINUTES" minutes."
  164. 3385  LOCATE 25,1:PRINT"Press any key to continue";:WHILE INKEY$="":WEND:GOTO 470
  165. 3390  END
  166. 3400  CLS:PRINT"Exit to DOS"
  167. 3410  PRINT"Are you sure?":WER=1:GOSUB 2000:IF X$="Y" OR X$="y" THEN 3420 ELSE GOTO 470
  168. 3420  COLOR 30:PRINT:PRINT"Positive?":WER=1:GOSUB 2000:COLOR 7:IF X$="Y" OR X$="y" THEN LOCATE 23,1:PRINT"Goodbye!":SYSTEM ELSE GOTO 470
  169. 3430  CLS:PUT(20,10),PIC,PSET:
  170. 3440  LOCATE 16,11:PRINT"by David Mitchell"
  171. 3450  GOTO 450
  172. 50000  BEEP:IF ERR=27 THEN PRINT"The printer is out of paper.":BEEP:RESUME 3130
  173. 50001  IF ERR=24 THEN PRINT"The printer is not turned on or is off-line!":BEEP:BEEP:RESUME 3130
  174. 50002  IF ERR=53 AND ERL=2760 THEN PRINT"That session was never started.":BEEP:RESUME 2710
  175. 50003  IF ERR=64 OR ERR=67 THEN PRINT"That is an unacceptable session name. Please try again.":RESUME 2510
  176. 50004  IF ERR=70 THEN PRINT"The disk is write protected. Please remove sticker from notch and press any key.":WHILE INKEY$="":WEND:RESUME
  177. 50005  IF ERR=71 THEN PRINT"Please close the disk drive door and press any key to continue.":WHILE INKEY$="":WEND:RESUME
  178. 50006  IF ERR=53 AND ERL=3040 THEN PRINT"File totaltme not found. RETURNING TO MAN MENU":FOR GH=1 TO 5000:NEXT:GOTO 470
  179. 50007  PRINT"Error "ERR" in line "ERL".":END
  180. 60000  RUN
  181.